package com.liangtian.mdm.material.dao;

import com.liangtian.mdm.base.BaseDao;
import com.liangtian.mdm.material.model.Wlwl;
import com.liangtian.mdm.material.model.WlwlLan;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 物料正式表数据库层接口
 *
 * @author jyh
 * @date 2016-09-19
 */

@Repository
public interface WlwlDao extends BaseDao<Wlwl> {
    /**
     * 根据查询条件获取物料正式表数据
     *
     * @param cond
     * @return
     */
    public List<Wlwl> getWlwlByCond(Map<String, Object> cond);

    /**
     * 导出物料明细时根据查询条件获取物料正式表数据
     *
     * @param cond
     * @return
     */
    public List<Wlwl> getWlwlByCondForMxExport(Map<String, Object> cond);

    /**
     * 根据查询条件获取物料正式表数据数量
     *
     * @param cond
     * @return
     */
    public int getWlwlCount(Map<String, Object> cond);

    /**
     * 获取指定物料编码的物料正式表数据
     *
     * @param wlbm
     * @return
     */
    public Wlwl getWlwlByWlbm(String wlbm);

    /**
     * 根据物料类别ID获得物料正式表数据
     *
     * @param wllbid
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public List<Wlwl> getWlwlByWllbid(String wllbid);

    /**
     * 快速找出用户所输入长描述的相匹配值
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public List<String> getSimilarWlqc(Map<String, Object> cond);

    /**
     * 更新物料正式表数据
     *
     * @param wlwl
     * @author jyh
     * @date 2016-09-19
     */
    public void updateWlwl(Wlwl wlwl);

    /**
     * 晋煤 更新物料正式表 启用系统 filed1
     */
    public void updateWlwlFiled(Map<String, Object> cond);

    /**
     * 更新物料正式表数据状态(冻结/解冻)
     *
     * @param ids
     * @param status
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    //TODO (未实现)
    public int updateStatus(List<String> ids, String status);

    /**
     * 根据条件更新正式表物料数据状态
     *
     * @param cond
     * @author jyh
     * @date 2016-09-19
     */
    public void updateWlwlStatus(Map<String, Object> cond);

    /**
     * 选择物料代码(供生产物料用)
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    //TODO 有调整  service层需要改动
    public List<Wlwl> selectWlwlForSc(Map<String, Object> cond);

    /**
     * 选择物料代码(供润滑油用)
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    //TODO 有调整  service层需要改动
    public List<Wlwl> selectWlwlForFyp(Map<String, Object> cond);

    /**
     * 选择物料代码数量(供生产物料用)
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    //TODO 有调整  service层需要改动
    public int selectWlwlForScCount(Map<String, Object> cond);

    /**
     * 选择物料代码数量(供润滑油用)
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    //TODO 有调整  service层需要改动
    public int selectWlwlForFypCount(Map<String, Object> cond);

    /**
     * 根据WLBM集合批量归档物料代码
     *
     * @param cond
     * @author jyh
     * @date 2016-09-19
     */
    public void luojiDeleteWlwlByIdS(Map<String, Object> cond);

    /**
     * 根据WLBM集合批量向归档表添加物料代码
     *
     * @param cond
     * @author jyh
     * @date 2016-09-19
     */
    public void insertWlwlGdByCond(Map<String, Object> cond);

    /**
     * 根据WLBM集合批量删除物料代码
     *
     * @param list
     * @author jyh
     * @date 2016-09-19
     */
    public void deleteWlwlByIdS(List<String> list);


    /**
     * 查询物料多语言数据
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public List<WlwlLan> getWlwlLan(Map<String, Object> cond);

    /**
     * 根据条件查询英文物料数据
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public List<Wlwl> getWlwlByCond_en(Map<String, Object> cond);

    /**
     * 根据条件查询英文物料数量
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public int getWlwlCount_en(Map<String, Object> cond);

    /**
     * 根据条件查询物料英文长描述数据
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public List<String> getSimilarWlqc_en(Map<String, Object> cond);

    /**
     * 判断是否往分发表里写过
     *
     * @param wlbm
     * @param sysCode
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    //TODO 参数有调整  service层需要改动
    public int getWlwlIsDis(Map<String, Object> cond);

    /**
     * 根据综合条件查询物料审核记录
     *
     * @param cond
     * @return
     * @author ly
     * @date 2018-01-25
     */
    public List<Wlwl> queryWlwlByApprove(Map<String, Object> cond);

    public List<Wlwl> queryWlwlUpdByApprove(Map<String, Object> cond);
}
